package cqrtplm.controller;

import java.util.List;
import javax.servlet.http.HttpServletResponse;

import cn.hutool.poi.excel.ExcelUtil;
import com.github.pagehelper.PageInfo;
import com.github.zuihou.base.controller.BaseController;
import com.hustcad.plm.pdm.preview.controller.TyplmPreviewController;
import com.ty.basic.response.ResponseResult;
import cqrtplm.constant.RouteConstant;
import cqrtplm.dto.DspfDemandDevpDTO;
import cqrtplm.dto.RtTestRequirementsDTO;
import cqrtplm.dto.query.DspfDemandDevplanQueryDTO;
import cqrtplm.entity.DspfDemandDevplanDO;
import cqrtplm.entity.DspfDemandDevplanEditLogDO;
import cqrtplm.entity.RtTestRequirementsDO;
import cqrtplm.service.IDspfDemandDevplanService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 需求排程Controller
 *
 * @author 江小雄
 * @date 2025-06-23
 */
@RestController
@RequestMapping(RouteConstant.DSPFDEMANDDEVPLAN + "v1")
public class DspfDemandDevplanController
{
    @Autowired
    private IDspfDemandDevplanService dspfDemandDevplanService;


//    /**
//     * 查询需求排程列表
//     */
//    @PreAuthorize("@ss.hasPermi('system:DevPlan:list')")
//    @GetMapping("/list")
//    public TableDataInfo list(DspfDemandDevplanDO dspfDemandDevplan)
//    {
//        startPage();
//        List<DspfDemandDevplanDO> list = dspfDemandDevplanService.selectDspfDemandDevplanList(dspfDemandDevplan);
//        return getDataTable(list);
//    }

    @PostMapping("/list")
    public PageInfo<DspfDemandDevplanDO> list(@RequestBody DspfDemandDevplanQueryDTO queryDTO) {
        return dspfDemandDevplanService.selectDspfDemandDevplanList(queryDTO, queryDTO.getPageNum()==null ? 1: queryDTO.getPageNum(), queryDTO.getPageSize()==null ? 10: queryDTO.getPageSize());
    }

    /**
     * 获取调整排程历史数据
     * @param queryDTO
     * @return
     */
    @PostMapping("/getEditLoglist")
    public PageInfo<DspfDemandDevplanEditLogDO> getEditLoglist(@RequestBody DspfDemandDevplanQueryDTO queryDTO) {
        return dspfDemandDevplanService.getEditLoglist(queryDTO, queryDTO.getPageNum(), queryDTO.getPageSize());
    }


//    /**
//     * 导出需求排程列表
//     */
//    @PreAuthorize("@ss.hasPermi('system:DevPlan:export')")
//    @PostMapping("/export")
//    public void export(HttpServletResponse response, DspfDemandDevplanDO dspfDemandDevplan)
//    {
//        List<DspfDemandDevplanDO> list = dspfDemandDevplanService.selectDspfDemandDevplanList(dspfDemandDevplan);
//        ExcelUtil<DspfDemandDevplanDO> util = new ExcelUtil<DspfDemandDevplanDO>(DspfDemandDevplanDO.class);
//        util.exportExcel(response, list, "需求排程数据");
//    }
//
//    /**
//     * 获取需求排程详细信息
//     */
//    @PreAuthorize("@ss.hasPermi('system:DevPlan:query')")
//    @GetMapping(value = "/{DevPlanID}")
//    public AjaxResult getInfo(@PathVariable("DevPlanID") String DevPlanID)
//    {
//        return success(dspfDemandDevplanService.selectDspfDemandDevplanByDevPlanID(DevPlanID));
//    }
//
    /**
     * 新增需求排程
     */
    @PostMapping(value = "/add")
    public ResponseResult add(@RequestBody DspfDemandDevpDTO dto)
    {
        return dspfDemandDevplanService.insertDspfDemandDevplan(dto);
    }

    /**
     * 调整需求排程
     */
    @PutMapping(value = "update")
    public ResponseResult edit(@RequestBody DspfDemandDevpDTO dto)
    {
        return dspfDemandDevplanService.updateDspfDemandDevplan(dto);
    }
//
//    /**
//     * 删除需求排程
//     */
//    @PreAuthorize("@ss.hasPermi('system:DevPlan:remove')")
//	@DeleteMapping("/{DevPlanIDs}")
//    public AjaxResult remove(@PathVariable String[] DevPlanIDs)
//    {
//        return toAjax(dspfDemandDevplanService.deleteDspfDemandDevplanByDevPlanIDs(DevPlanIDs));
//    }
}
